package com.we.netty;

import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;

public class MyCompletableFuture {
    public static void main(String[] args) throws ExecutionException, InterruptedException {
        //可以获取子线程中的返回，过程中的结果，并可以在主线程中阻塞等待其完成
        CompletableFuture<Integer> completableFuture=new CompletableFuture<>();
        new Thread( () ->{
            try {
                Thread.sleep(5000);
            } catch (InterruptedException e) {
                throw new RuntimeException(e);
            }
            int i=8;
            //线程完成后我们得到了最终的结果，调用complete方法将结果传入
            completableFuture.complete(i);
        }).start();
        //如何在子线程中，获取到这个8，下面这个方法是阻塞的，下面这个方法在等上面的那个complete方法完成
        Integer integer = completableFuture.get();
        System.out.println(integer);
    }
}
